//错误请求测试
/*给服务器发送一个数据，告诉服务器要发送1024字节的数据，但是实际发送的数据不足1024，查看服务器处理结果*/
/*
    1. 如果数据只发送一次，服务器将得不到完整请求，就不会进行业务处理，客户端也就得不到响应，最终超时关闭连接
    2. 连着给服务器发送了多次小的请求，服务器会将后边的请求当作前边请求的正文进行处理，而后便处理的时候有可能就会因为处理错误而关闭连接
*/
 
#include "../include/socket.h"
#include "../include/logger.h"
#include <iostream>
#include <cassert>
#include <string>
 
int main()
{
    std::cout << "Testing error request..." << std::endl;
    const std::string logFile = "test_error_request";
    util::Logger::instance().init(logFile, 1024*1024, 1);
    util::Logger::instance().setLevel(util::LogLevel::INFO);

    net::Socket clientSock;
    clientSock.createClient(8081, "127.0.0.1");
    std::string req = "GET /hello HTTP/1.1\r\nConnection: keep-alive\r\nContent-Length: 100\r\n\r\n codemei";
    while (1)
    {
        assert(clientSock.send(req.c_str(), req.size()) != -1);
        assert(clientSock.send(req.c_str(), req.size()) != -1);
        assert(clientSock.send(req.c_str(), req.size()) != -1);
        char buf[1024] = {0};
        assert(clientSock.recv(buf, 1023));
        LOG_INFO("%s", buf);
        sleep(3);
    }
    clientSock.close();
    return 0;
}